νμ μ μΈ masonry λ μ΄μμ λ° λ°μν/λμ μΉ λμμΈμ κ°λ₯νκ² νλ κΈ°ν κ³ κΈ κΈ°λ₯μ ν¬ν¨νμ¬ CSS Grid Level 3μ κ°λ ₯ν κΈ°λ₯μ μ΄ν΄λ³΄μΈμ.
μλμ μΈ λ μ΄μμ μ κΈ ν΄μ : Masonry λ° κ³ κΈ κΈ°λ₯μ ν΅ν CSS Grid Level 3 λ§μ€ν°νκΈ°
CSS Gridλ μΉ λ μ΄μμ λμμΈμ νλͺ μ μΌμΌμΌ μ λ‘ μλ μ μ΄ λ° μ μ°μ±μ μ 곡ν©λλ€. CSS Grid Level 3μμλ κ°λ°μκ° μ§μ μΌλ‘ μλμ μ΄κ³ λ°μμ±μ΄ λ°μ΄λ μΉ κ²½νμ λ§λ€ μ μλλ‘ μ§μνλ νκΈ°μ μΈ masonry λ μ΄μμ λ° κΈ°ν κ³ κΈ κΈ°λ₯μ λμ νμ¬ κ°λ₯μ±μ΄ λμ± νμ₯λ©λλ€. μ΄ ν¬κ΄μ μΈ κ°μ΄λλ CSS Grid Level 3μ 볡μ‘μ±μ μμΈν μ΄ν΄λ³΄κ³ μ£Όμ κΈ°λ₯μ μ΄ν΄λ³΄κ³ μ€μ©μ μΈ μμ λ₯Ό μ 곡νλ©° μ΄ κ°λ ₯ν κΈ°μ μ λ§μ€ν°νλ λ° λμμ΄ λλ μ€ν κ°λ₯ν ν΅μ°°λ ₯μ μ 곡ν©λλ€.
CSS Grid Level 3μ΄λ 무μμ λκΉ?
CSS Grid Level 3μ CSS Grid Level 1μ κΈ°λ°μ ν λλ‘ κ΅¬μΆλμ΄ μΌλ°μ μΈ λ μ΄μμ λ¬Έμ λ₯Ό ν΄κ²°νλ μλ‘μ΄ κΈ°λ₯κ³Ό κ°μ μ¬νμ μΆκ°ν©λλ€. κ°μ₯ μ€μν μΆκ° μ¬νμ λ²½λμ΄ μμ‘° λ²½μ λ°°μ΄λλ λ°©μκ³Ό μ μ¬νκ² μκ°μ μΌλ‘ λ§€λ ₯μ μ΄κ³ μ κΈ°μ μΌλ‘ ꡬμ±λ λμμΈμ λ§λ€ μ μλ masonry λ μ΄μμμ λλ€. masonry μΈμλ Level 3μλ κΈ°μ‘΄ Grid μμ±μ λν ν₯μλ κΈ°λ₯μ΄ ν¬ν¨λμ΄ μμΌλ©° λ μ΄μμ μ μ΄ λ° μ μ°μ±μ λμ± ν₯μμν€λ μλ‘μ΄ κΈ°λ₯μ΄ λμ λμμ΅λλ€.
νμ μ μΈ Masonry λ μ΄μμ
Masonryμ λ§€λ ₯ μ΄ν΄
Pinterestμ κ°μ νλ«νΌμμ λμ€νλ masonry λ μ΄μμμ λ€μν λμ΄λ‘ μ½ν μΈ λ₯Ό νμνλ μκ°μ μΌλ‘ λ§€λ ₯μ μΈ λ°©λ²μ μ 곡ν©λλ€. μ격ν ν λ° μ΄ μ λ ¬μ μ μ§νλ κΈ°μ‘΄ Grid μμ€ν κ³Ό λ¬λ¦¬ masonryλ μ¬μ© κ°λ₯ν μμ§ κ³΅κ°μ μ±μ°λλ‘ νλͺ©μ λ°°μ΄νμ¬ μλμ μ΄κ³ μ κΈ°μ μΈ λͺ¨μμ λ§λλλ€. μ΄λ λ€μν ν¬κΈ°μ μ΄λ―Έμ§, κΈ°μ¬ λλ κΈ°ν μ½ν μΈ λ₯Ό νμνλ λ° νΉν μ μ©νλ©° νλ©΄ λΆλμ°μ μ΅μ μ¬μ©μ 보μ₯ν©λλ€.
CSS Grid Level 3μΌλ‘ Masonry ꡬν
CSS Grid Level 3μ 볡μ‘ν JavaScript μ루μ
μ νμμ±μ μμ κ³ masonry λ μ΄μμμ ꡬνμ λ¨μνν©λλ€. masonryλ₯Ό νμ±ννλ ν΅μ¬ μμ±μ μλ‘μ΄ masonry-auto-flow μμ±κ³Ό ν¨κ» μ¬μ©λλ grid-template-rows λ° grid-template-columnsμ
λλ€.
μμ : κΈ°λ³Έ Masonry λ μ΄μμ
λμ΄κ° λ€μν μ΄λ―Έμ§ λͺ¨μμ΄ μλ μλ리μ€λ₯Ό κ³ λ €νμμμ€. λ€μ CSS μ½λλ κΈ°λ³Έ masonry λ μ΄μμμ λ§λλ λ°©λ²μ 보μ¬μ€λλ€.
.container {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
grid-template-rows: masonry;
grid-gap: 10px;
masonry-auto-flow: next;
}
.item {
background-color: #eee;
padding: 15px;
border: 1px solid #ccc;
}
display: grid;: 컨ν μ΄λλ₯Ό Grid 컨ν μ΄λλ‘ μ€μ ν©λλ€.grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));: μ¬μ© κ°λ₯ν 곡κ°μ λ§κ² μλμΌλ‘ μ‘°μ λλ μ΄μ λ§λ€κ³ μ΅μ λλΉλ 200pxμ λλ€.grid-template-rows: masonry;: νμ΄ masonry μκ³ λ¦¬μ¦μ λ°λΌμΌ ν¨μ μ§μ ν©λλ€.grid-gap: 10px;: Grid νλͺ© μ¬μ΄μ 10ν½μ κ°κ²©μ μΆκ°ν©λλ€.masonry-auto-flow: next;: masonry λ μ΄μμ λ΄μμ νλͺ©μ λ°°μΉνλ λ°©λ²μ κ²°μ ν©λλ€.nextλ μ¬μ© κ°λ₯ν λ€μ 곡κ°μ νλͺ©μ λ°°μΉν©λλ€.
μ€λͺ
: grid-template-rows: masonry; μμ±μ λΈλΌμ°μ μ ν λ°°μΉμ masonry μκ³ λ¦¬μ¦μ μ¬μ©νλλ‘ μ§μν©λλ€. masonry-auto-flow μμ±μ masonry Grid λ΄μμ νλͺ©μ΄ λ°°μΉλλ λ°©μμ μ μ΄ν©λλ€. next κ°μ νλͺ©μ΄ μ¬μ© κ°λ₯ν λ€μ 곡κ°μ λ°°μΉλλλ‘ νμ¬ νΉμ§μ μΈ μκ°λ¦° λ μ΄μμμ λ§λλλ€.
μμ : masonry-auto-flowλ₯Ό μ¬μ©νμ¬ νλͺ© λ°°μΉ μ μ΄
masonry-auto-flow μμ±μ νλͺ© λ°°μΉλ₯Ό μ μ΄νκΈ° μν΄ λ€λ₯Έ κ°μ μ 곡ν©λλ€. next μΈμλ ordered λ° ΡΡΡΠΎΠ³ΠΈΠΉ(μ격νμ§λ§ `strict`λ μ ν¨νμ§ μμ΅λλ€. `ordered`λ νμ€μ΄μ§λ§ μμ§ λ리 μ§μλμ§ μμ μ μμ΅λλ€.)μ μ¬μ©ν μ μμ΅λλ€.
masonry-auto-flow: next;(μμ νμλ λλ‘) β μ¬μ© κ°λ₯ν λ€μ 곡κ°μ μ°μ μνλ μκ°μ μμλ₯Ό κΈ°λ°μΌλ‘ κ°κ²©μ μ±μλλ€.masonry-auto-flow: ordered;β κ°κ²©μ μ±μ°λ λμ νλͺ©μ μλ μμλ₯Ό μ΅λν μ μ§νλ €κ³ μλν©λλ€. μ΄ κ°μ DOM μμλ₯Ό μ€μνμ§λ§ μ΅μ μ΄ μλ ν¨νΉμ΄ λ°μν μ μμ΅λλ€.
masonry-auto-flow κ°μ μ νμ μνλ μκ°μ ν¨κ³Όμ νλͺ©μ μλ μμλ₯Ό μ μ§νλ μ€μμ±μ λ°λΌ λ€λ¦
λλ€. nextλ μΌλ°μ μΌλ‘ μ΅κ³ μ μκ°μ ν¨νΉμ μ 곡νλ λ°λ©΄ orderedλ DOM μμλ₯Ό μ°μ μν©λλ€.
κ³ κΈ Masonry κΈ°μ
Masonryμ λ€λ₯Έ Grid κΈ°λ₯ κ²°ν©
Masonryλ λ€λ₯Έ CSS Grid κΈ°λ₯κ³Ό μλ²½νκ² ν΅ν©νμ¬ λ 볡μ‘νκ³ μ¬μ©μ μ μλ λ μ΄μμμ λ§λ€ μ μμ΅λλ€. μλ₯Ό λ€μ΄ λͺ λͺ λ Grid μμκ³Ό masonryλ₯Ό κ²°ν©νμ¬ λ μ΄μμ λ΄μμ νΉμ μμμ μ μν μ μμ΅λλ€.
λ€λ₯Έ νλ©΄ ν¬κΈ° μ²λ¦¬
λ°μν masonry λ μ΄μμμ 보μ₯νλ €λ©΄ λ―Έλμ΄ μΏΌλ¦¬λ₯Ό μ¬μ©νμ¬ νλ©΄ ν¬κΈ°μ λ°λΌ μ΄ μλ₯Ό μ‘°μ ν μ μμ΅λλ€. μ΄λ₯Ό ν΅ν΄ λ€μν μ₯μΉμ λ§κ² λ μ΄μμμ μ΅μ ννμ¬ λ€μν νλ«νΌμμ μΌκ΄λ μ¬μ©μ κ²½νμ μ 곡ν μ μμ΅λλ€.
@media (max-width: 768px) {
.container {
grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
}
}
μ΄ μμ μμ μ΅λ λλΉκ° 768 ν½μ μΈ νλ©΄μ κ²½μ° μ΄ μκ° μ€μ΄λ€μ΄ νλͺ©μ΄ μκ°μ μΌλ‘ λ§€λ ₯μ μΌλ‘ μ μ§λκ³ λ무 μμμ§μ§ μλλ‘ ν©λλ€.
Masonry κ·Έ μ΄μ: λ€λ₯Έ κ³ κΈ Grid κΈ°λ₯ μ΄ν΄λ³΄κΈ°
masonryλ CSS Grid Level 3μ ν€λλΌμΈ κΈ°λ₯μ΄μ§λ§ κ°λ°μλ₯Ό λμ± κ°λ ₯νκ² λ§λλ μ¬λ¬ κ°μ§ λ€λ₯Έ ν₯μλ κΈ°λ₯κ³Ό μΆκ° κΈ°λ₯λ ν¬ν¨λμ΄ μμ΅λλ€.
Subgrid κ°μ μ¬ν
Subgridλ₯Ό μ¬μ©νλ©΄ μ€μ²©λ Gridκ° μμ Gridμ νΈλ ν¬κΈ° μ‘°μ μ μμν μ μμ΅λλ€. Level 3μ subgrid μ§μμ κ°μ νκ³ μ μ¬μ μΌλ‘ κ΄λ ¨νμ¬ μλ‘μ΄ κΈ°λ₯μ λμ νλ κ²μ λͺ©νλ‘ ν©λλ€. Subgridλ μ€μ²©λ Gridμ μμ Grid κ°μ μλ²½ν μ λ ¬μ νμ©νμ¬ ν΅ν©λ λ μ΄μμ ꡬ쑰λ₯Ό λ§λλλ€.
κ°κ²© μ μ΄ κ°μ μ¬ν
CSS Grid Level 1μ Grid νλͺ© μ¬μ΄μ κ°κ²©μ μ μ΄νκΈ° μν΄ grid-gap, grid-row-gap λ° grid-column-gap μμ±μ λμ
νμ΅λλ€. Level 3μ ν λλ μ΄λ§λ€ λ€λ₯Έ κ°κ²©μ μ§μ νλ κΈ°λ₯κ³Ό κ°μ΄ κ°κ²© λμμ λν λ³΄λ€ μΈλΆνλ μ μ΄λ₯Ό λμ
ν μ μμ΅λλ€.
λ Όλ¦¬μ μμ±κ³Όμ ν΅ν©
inline-start λ° block-startμ κ°μ λ
Όλ¦¬μ μμ±μ λ°©ν₯μ ꡬμ λ°μ§ μλ λ°©μμΌλ‘ λ μ΄μμ μμ±μ μ μνλ λ°©λ²μ μ 곡ν©λλ€. Level 3μ μ΄λ¬ν μμ±μ CSS Gridμ λμ± ν΅ν©νμ¬ λ€μν μ°κΈ° λͺ¨λ(μ: μΌμͺ½μμ μ€λ₯Έμͺ½, μ€λ₯Έμͺ½μμ μΌμͺ½, μμμ μλ)μμ μ μλνλ λ³΄λ€ μ μ°νκ³ μ μ κ°λ₯ν λ μ΄μμμ νμ©ν μ μμ΅λλ€.
CSS Grid Level 3μ μ€μ μμ© νλ‘κ·Έλ¨
CSS Grid Level 3μ μΉ λμμΈ λ° κ°λ°μ κ΄λ²μν κ°λ₯μ±μ μ΄μ΄μ€λλ€. νΉν μ μ©ν λͺ κ°μ§ μ€μ μμ© νλ‘κ·Έλ¨μ λ€μκ³Ό κ°μ΅λλ€.
- μ΄λ―Έμ§ κ°€λ¬λ¦¬: λ€μν μ΄λ―Έμ§ ν¬κΈ°μ κ°λ‘ μΈλ‘ λΉμ¨λ‘ μκ°μ μΌλ‘ λ§€λ ₯μ μΈ μ΄λ―Έμ§ κ°€λ¬λ¦¬λ₯Ό λ§λλλ€. masonry λ μ΄μμμ μ΄λ―Έμ§ ν¬κΈ°μ κ΄κ³μμ΄ μ΄λ―Έμ§κ° λ―Έμ μΌλ‘ 보기 μ’κ² λ°°μ΄λλλ‘ ν©λλ€. μ¬μ§ μκ°μ μνμ 보μ¬μ£Όλ ν¬νΈν΄λ¦¬μ€ μΉ μ¬μ΄νΈλ₯Ό κ³ λ €νμμμ€.
- λ΄μ€ λ° μ‘μ§ μΉ μ¬μ΄νΈ: κΈ°μ¬μ ν€λλΌμΈμ μλμ μ΄κ³ λ§€λ ₯μ μΈ λ°©μμΌλ‘ νμν©λλ€. masonry λ μ΄μμμ μ¬μ©νμ¬ μ£Όμ κΈ°μ¬, μ΅μ κ²μλ¬Ό λ° λ©ν°λ―Έλμ΄ μ½ν μΈ κ° νΌν©λ μκ°μ μΌλ‘ νλΆν ννμ΄μ§λ₯Ό λ§λ€ μ μμ΅λλ€. λ€μν μμ€μ μ½ν μΈ λ₯Ό μ μν΄μΌ νλ μ¨λΌμΈ λ΄μ€ ν¬νΈμ μκ°ν΄ 보μμμ€.
- μ μ μκ±°λ μ ν λͺ©λ‘: λ€μν λμ΄μ λλΉμ μ νμ λ§€λ ₯μ μ΄κ³ 체κ³μ μΈ λ°©μμΌλ‘ μκ°ν©λλ€. masonry λ μ΄μμμ μ¬μ©νμ¬ μ£Όμ κΈ°λ₯μ κ°μ‘°νκ³ κ²μμ μ₯λ €νλ μκ°μ μΌλ‘ λ§€λ ₯μ μΈ μ ν Gridλ₯Ό λ§λ€ μ μμ΅λλ€. μλ‘ λ€λ₯Έ 곡κΈμ 체μ μ νμ νμνλ μ¨λΌμΈ λ§μΌνλ μ΄μ€λ μ΄μ μ λ릴 μ μμ΅λλ€.
- κ°μΈ λΈλ‘κ·Έ: μ£Όμ μ½ν μΈ λ₯Ό κ°μ‘°νκ³ νμμ μ₯λ €νλ λ νΉνκ³ λ§€λ ₯μ μΈ λΈλ‘κ·Έ λ μ΄μμμ λμμΈν©λλ€. masonry λ μ΄μμμ μ¬μ©νμ¬ λΈλ‘κ·Έ κ²μλ¬Ό, μ£Όμ κΈ°μ¬ λ° λ©ν°λ―Έλμ΄ μ½ν μΈ κ° νΌν©λ μκ°μ μΌλ‘ λ§€λ ₯μ μΈ ννμ΄μ§λ₯Ό λ§λ€ μ μμ΅λλ€. μ μΈκ³μ μ¬μ§κ³Ό μ΄μΌκΈ°κ° λ΄κΈ΄ μ¬ν λΈλ‘κ·Έλ₯Ό μμν΄ λ³΄μμμ€.
CSS Grid μ¬μ© μ μ μμ κ³ λ € μ¬ν
μ μΈκ³ μμ²μλ₯Ό μν μΉμ¬μ΄νΈλ₯Ό κ°λ°ν λλ λͺ¨λ μ¬λμκ² κΈμ μ μΈ μ¬μ©μ κ²½νμ 보μ₯νκΈ° μν΄ λ€μν μμλ₯Ό κ³ λ €νλ κ²μ΄ μ€μν©λλ€. CSS Grid μ¬μ©κ³Ό κ΄λ ¨λ λͺ κ°μ§ μ μμ κ³ λ € μ¬νμ λ€μκ³Ό κ°μ΅λλ€.
- μΈμ΄ λ° μ°κΈ° λͺ¨λ: μΈμ΄λ§λ€ λ€λ₯Έ μ°κΈ° λͺ¨λ(μ: μΌμͺ½μμ μ€λ₯Έμͺ½, μ€λ₯Έμͺ½μμ μΌμͺ½, μμμ μλ)κ° μμ΅λλ€. CSS Grid λ μ΄μμμ΄ λ€λ₯Έ μ°κΈ° λͺ¨λμ μ μ νκ² μ μ©λλμ§ νμΈν©λλ€. λ°©ν₯μ ꡬμ λ°μ§ μλ λ μ΄μμμ λ§λ€λ €λ©΄ 물리μ μμ±(μ:
left,right) λμ λ Όλ¦¬μ μμ±(μ:inline-start,block-end)μ μ¬μ©ν©λλ€. - μ½ν
μΈ κΈΈμ΄: μΈμ΄λ§λ€ νκ· λ¨μ΄ κΈΈμ΄κ° λ€λ¦
λλ€. λ
μΌμ΄μ κ°μ μΌλΆ μΈμ΄λ μμ΄μ κ°μ λ€λ₯Έ μΈμ΄λ³΄λ€ λ¨μ΄κ° λ κΈ΄ κ²½ν₯μ΄ μμ΅λλ€. CSS Grid λ μ΄μμμ΄ κΉ¨μ§κ±°λ μ€λ²νλ‘λμ§ μκ³ λ€μν μ½ν
μΈ κΈΈμ΄λ₯Ό μμ©ν μ μλμ§ νμΈν©λλ€. μ μ°ν λ¨μ(μ:
fr,%)μ λ°μν νμ΄ν¬κ·ΈλνΌλ₯Ό μ¬μ©νμ¬ λ€μν μ½ν μΈ κΈΈμ΄μ μ μνλ κ²μ κ³ λ €νμμμ€. - μ΄λ―Έμ§ λ° λ―Έλμ΄ μ΅μ ν: λ€μν νλ©΄ ν¬κΈ° λ° λ€νΈμν¬ μ‘°κ±΄μ λ§κ² μ΄λ―Έμ§ λ° κΈ°ν λ―Έλμ΄λ₯Ό μ΅μ νν©λλ€. λ°μν μ΄λ―Έμ§(μ:
<picture>μμ,srcsetμμ±)λ₯Ό μ¬μ©νμ¬ μ¬μ©μ μ₯μΉ λ° λ€νΈμν¬μ λ°λΌ λ€λ₯Έ μ΄λ―Έμ§ ν΄μλλ₯Ό μ 곡ν©λλ€. CDN(μ½ν μΈ μ μ‘ λ€νΈμν¬)μ μ¬μ©νμ¬ μ¬μ©μμκ² λ κ°κΉμ΄ μλ²μμ λ―Έλμ΄ μμ°μ μ λ¬νμ¬ λκΈ° μκ°μ μ€μ΄κ³ λ‘λ© μκ°μ κ°μ νλ κ²μ κ³ λ €νμμμ€. - μ κ·Όμ±: CSS Grid λ μ΄μμμ΄ μ₯μ κ° μλ μ¬μ©μκ° μ‘μΈμ€ν μ μλμ§ νμΈν©λλ€. μλ―Έ μ²΄κ³ HTML μμλ₯Ό μ¬μ©νκ³ μ΄λ―Έμ§μ λν λ체 ν μ€νΈλ₯Ό μ 곡νκ³ ν€λ³΄λλ₯Ό μ¬μ©νμ¬ λ μ΄μμμ νμν μ μλμ§ νμΈν©λλ€. WCAG(μΉ μ½ν μΈ μ κ·Όμ± μ§μΉ¨)μ κ°μ μ κ·Όμ± μ§μΉ¨μ μ€μνμ¬ ν¬κ΄μ μ΄κ³ μ κ·Ό κ°λ₯ν μΉ κ²½νμ λ§λλλ€.
- λ¬Ένμ κ°μμ±: CSS Grid λ μ΄μμμ λμμΈν λ λ¬Ένμ μ°¨μ΄μ μ μνμμμ€. νΉμ λ¬ΈνκΆμμ λΆμΎνκ±°λ λΆμ μ ν μ μλ μ΄λ―Έμ§, μμ λλ κΈ°νΈμ μ¬μ©μ νΌνμμμ€. λ¬Ένμ μΌλ‘ μ μ ν κΈκΌ΄κ³Ό νμ΄ν¬κ·ΈλνΌλ₯Ό μ¬μ©νλ κ²μ κ³ λ €νμμμ€. λμμΈμ΄ λ¬Ένμ μΌλ‘ λ―Όκ°νκ³ μ‘΄μ€μ μΈμ§ νμΈνλ €λ©΄ νμ§ν μ λ¬Έκ°μ μλ΄νμμμ€.
CSS Grid Level 3 μ¬μ©μ μν λͺ¨λ² μ¬λ‘
CSS Grid Level 3μ μ΄μ μ κ·Ήλννκ³ μνν κ°λ° νλ‘μΈμ€λ₯Ό 보μ₯νλ €λ©΄ λ€μ λͺ¨λ² μ¬λ‘λ₯Ό κ³ λ €νμμμ€.
- CSS Grid κΈ°λ³Έ μ¬νμ λν νμ€ν μ΄ν΄λΆν° μμν©λλ€. Level 3μ κ³ κΈ κΈ°λ₯μΌλ‘ λ°μ΄λ€κΈ° μ μ Grid 컨ν μ΄λ, Grid νλͺ©, Grid νΈλ λ° Grid μ κ³Ό κ°μ CSS Gridμ κΈ°λ³Έ κ°λ μ νμ€νκ² μ΄ν΄νκ³ μλμ§ νμΈνμμμ€.
- μλ―Έ μλ ν΄λμ€ μ΄λ¦μ μ¬μ©ν©λλ€. CSS Grid μμμ λν΄ μ€λͺ μ μ΄κ³ μλ―Έ μλ ν΄λμ€ μ΄λ¦μ μ¬μ©ν©λλ€. μ΄λ κ² νλ©΄ μ½λλ₯Ό λ μ½κΈ° μ½κ³ μ μ§ κ΄λ¦¬ν μ μμ΅λλ€.
- μ½λμ μ£Όμμ λ΅λλ€. CSS μ½λμ μ£Όμμ μΆκ°νμ¬ λ€λ₯Έ μΉμ κ³Ό μμ±μ λͺ©μ μ μ€λͺ ν©λλ€. μ΄λ κ² νλ©΄ κ·νμ λ€λ₯Έ μ¬λλ€μ΄ μ½λλ₯Ό μ΄ν΄νκ³ μ μ§ κ΄λ¦¬νκΈ°κ° λ μ¬μμ§λλ€.
- μ² μ ν ν μ€νΈν©λλ€. CSS Grid λ μ΄μμμ΄ μ¬λ°λ₯΄κ² λ λλ§λκ³ μΌκ΄λ μ¬μ©μ κ²½νμ μ 곡νλμ§ νμΈνκΈ° μν΄ λ€μν λΈλΌμ°μ λ° μ₯μΉμμ μ² μ ν ν μ€νΈν©λλ€.
- CSS μ μ²λ¦¬κΈ°(μ ν μ¬ν)λ₯Ό μ¬μ©ν©λλ€. Sass λλ Lessμ κ°μ CSS μ μ²λ¦¬κΈ°λ₯Ό μ¬μ©νμ¬ λ³΄λ€ μ²΄κ³μ μ΄κ³ μ μ§ κ΄λ¦¬ κ°λ₯ν CSS μ½λλ₯Ό μμ±νλ κ²μ κ³ λ €νμμμ€. μ μ²λ¦¬κΈ°λ λ³μ, λ―Ήμ€μΈ λ° μ€μ²©κ³Ό κ°μ κΈ°λ₯μ μ 곡νμ¬ CSS κ°λ°μ λ¨μνν μ μμ΅λλ€.
- μ½λμ μ ν¨μ±μ κ²μ¬ν©λλ€. CSS μ ν¨μ± κ²μ¬κΈ°λ₯Ό μ¬μ©νμ¬ μ½λμ ꡬ문 μ€λ₯κ° μλμ§ νμΈνκ³ CSS μ¬μμ μ€μνλμ§ νμΈν©λλ€.
- μ±λ₯ μ΅μ ν: Grid νλͺ© μλ₯Ό μ΅μννκ³ λ³΅μ‘ν Grid ꡬ쑰λ₯Ό νΌνμ¬ CSS Grid λ μ΄μμμ μ±λ₯μ μ΅μ νν©λλ€. λΆνμν κ³μ° λ° λ€μ μΉ μ νΌνκΈ° μν΄ CSS Gridλ₯Ό ν¨μ¨μ μΌλ‘ μ¬μ©ν©λλ€.
λΈλΌμ°μ μ§μ
CSS Grid Level 1μ λ°μ΄λ λΈλΌμ°μ μ§μμ λ°μ§λ§ Level 3 κΈ°λ₯, νΉν masonry λ μ΄μμμ λν μ§μμ μ¬μ ν μ§ννκ³ μμ΅λλ€. μ΅μ νΈνμ± μ 보λ caniuse.comμ νμΈνμμμ€. κΈ°λ₯ 쿼리(@supports)λ₯Ό μ¬μ©νμ¬ νΉμ Level 3 κΈ°λ₯μ μμ§ μ§μνμ§ μλ λΈλΌμ°μ μ λν λ체 μ루μ
μ μ 곡ν©λλ€. μλ₯Ό λ€μ΄:
@supports (grid-template-rows: masonry) {
.container {
grid-template-rows: masonry;
}
}
@supports not (grid-template-rows: masonry) {
/* Fallback solution (e.g., using JavaScript) */
.container {
/* ... */
}
}
κ²°λ‘
CSS Grid Level 3μ μΉ λ μ΄μμ λμμΈμ μ€μν μ§μ μ λνλ΄λ©° κ°λ°μκ° μλμ μ΄κ³ λ°μμ±μ΄ λ°μ΄λ μΉ κ²½νμ λ§λ€ μ μλλ‘ μ§μνλ κ°λ ₯ν μλ‘μ΄ κΈ°λ₯μ μ 곡ν©λλ€. νΉν masonry λ μ΄μμμ λ€μν λμ΄λ‘ μ½ν μΈ λ₯Ό νμνλ μκ°μ μΌλ‘ λ§€λ ₯μ μΈ λ°©λ²μ μ 곡νλ λ°λ©΄ λ€λ₯Έ ν₯μλ κΈ°λ₯μ λ μ΄μμ μ μ΄ λ° μ μ°μ±μ λμ± ν₯μμν΅λλ€. μ΄ κ°μ΄λμ μ€λͺ λ μ£Όμ κ°λ κ³Ό λͺ¨λ² μ¬λ‘λ₯Ό μ΄ν΄νλ©΄ CSS Grid Level 3μ μ μ¬λ ₯μ μ΅λν νμ©νκ³ μ μΈκ³ μμ²μλ₯Ό μν μ§μ μΌλ‘ λ°μ΄λ μΉ λμμΈμ λ§λ€ μ μμ΅λλ€.
Level 3 κΈ°λ₯μ λν λΈλΌμ°μ μ§μμ΄ κ³μ μ¦κ°ν¨μ λ°λΌ μ΅μ κ°λ° μν©μ λν μ΅μ μ 보λ₯Ό μ μ§νκ³ μ΄ κΈ°μ μ΄ μ 곡νλ κ°λ₯μ±μ νμνλ κ²μ΄ νμμ μ λλ€. CSS Grid Level 3μ κ°λ ₯ν κΈ°λ₯μ νμ©νμ¬ μΉ λ μ΄μμμ μλμ μ΄κ³ λ§€λ ₯μ μΈ κ²½νμΌλ‘ λ°κΎΈμμμ€.